1,670 research outputs found

    Adaptive Lock-Free Data Structures in Haskell: A General Method for Concurrent Implementation Swapping

    Full text link
    A key part of implementing high-level languages is providing built-in and default data structures. Yet selecting good defaults is hard. A mutable data structure's workload is not known in advance, and it may shift over its lifetime - e.g., between read-heavy and write-heavy, or from heavy contention by multiple threads to single-threaded or low-frequency use. One idea is to switch implementations adaptively, but it is nontrivial to switch the implementation of a concurrent data structure at runtime. Performing the transition requires a concurrent snapshot of data structure contents, which normally demands special engineering in the data structure's design. However, in this paper we identify and formalize an relevant property of lock-free algorithms. Namely, lock-freedom is sufficient to guarantee that freezing memory locations in an arbitrary order will result in a valid snapshot. Several functional languages have data structures that freeze and thaw, transitioning between mutable and immutable, such as Haskell vectors and Clojure transients, but these enable only single-threaded writers. We generalize this approach to augment an arbitrary lock-free data structure with the ability to gradually freeze and optionally transition to a new representation. This augmentation doesn't require changing the algorithm or code for the data structure, only replacing its datatype for mutable references with a freezable variant. In this paper, we present an algorithm for lifting plain to adaptive data and prove that the resulting hybrid data structure is itself lock-free, linearizable, and simulates the original. We also perform an empirical case study in the context of heating up and cooling down concurrent maps.Comment: To be published in ACM SIGPLAN Haskell Symposium 201

    PhyBin: binning trees by topology

    Get PDF
    A major goal of many evolutionary analyses is to determine the true evolutionary history of an organism. Molecular methods that rely on the phylogenetic signal generated by a few to a handful of loci can be used to approximate the evolution of the entire organism but fall short of providing a global, genome-wide, perspective on evolutionary processes. Indeed, individual genes in a genome may have different evolutionary histories. Therefore, it is informative to analyze the number and kind of phylogenetic topologies found within an orthologous set of genes across a genome. Here we present PhyBin: a flexible program for clustering gene trees based on topological structure. PhyBin can generate bins of topologies corresponding to exactly identical trees or can utilize Robinson-Fould’s distance matrices to generate clusters of similar trees, using a user-defined threshold. Additionally, PhyBin allows the user to adjust for potential noise in the dataset (as may be produced when comparing very closely related organisms) by pre-processing trees to collapse very short branches or those nodes not meeting a defined bootstrap threshold. As a test case, we generated individual trees based on an orthologous gene set from 10 Wolbachia species across four different supergroups (A–D) and utilized PhyBin to categorize the complete set of topologies produced from this dataset. Using this approach, we were able to show that although a single topology generally dominated the analysis, confirming the separation of the supergroups, many genes supported alternative evolutionary histories. Because PhyBin’s output provides the user with lists of gene trees in each topological cluster, it can be used to explore potential reasons for discrepancies between phylogenies including homoplasies, long-branch attraction, or horizontal gene transfer events

    A Qualitative Study of Early-Career Special Education Faculty Perceptions of Preparation and Induction

    Get PDF
    Abstract Much time and attention is given to questions about what effective teachers need to know; however, proportionately little effort is spent on answering related questions of what effective teacher educators need to do to ensure all new teachers are well prepared for their roles and responsibilities. Recruitment and preparation of doctoral students who become teacher education researchers and teacher educators is a neglected part of this process. This investigation explored the formal and informal learning experiences of early-career special education faculty in institutions of higher education (IHE). Data were collected through in-depth interviews with seven pre-tenure assistant professors in special education. Interviews focused on three areas: doctoral learning experiences, including coursework, college teaching, field supervision, and advisor mentorship; professional and personal considerations that led to current IHE positions; and other facilitating or inhibiting factors in the transition from doctoral student to university faculty. Skype web-conferencing software was used to conduct seven face-to-face interviews with participants living in various parts of the country. Call Recorder for Mac software captured both the interview audio and video. HyperResearch qualitative software was used for coding, unitizing, and categorizing of transcribed data. Emerging themes suggest that factors motivating students to pursue doctoral education strongly influence career trajectory. Consistent themes of support coupled with balance, both between work and life, and teaching, research, and service, emerged as critical for successful induction into faculty roles. Findings will contribute to the literature about best practices in effective special education doctoral preparation and provide a deeper understanding of doctoral student education in preparation for future faculty roles in special education

    Linear Haskell: practical linearity in a higher-order polymorphic language

    Get PDF
    Linear type systems have a long and storied history, but not a clear path forward to integrate with existing languages such as OCaml or Haskell. In this paper, we study a linear type system designed with two crucial properties in mind: backwards-compatibility and code reuse across linear and non-linear users of a library. Only then can the benefits of linear types permeate conventional functional programming. Rather than bifurcate types into linear and non-linear counterparts, we instead attach linearity to function arrows. Linear functions can receive inputs from linearly-bound values, but can also operate over unrestricted, regular values. To demonstrate the efficacy of our linear type system - both how easy it can be integrated in an existing language implementation and how streamlined it makes it to write programs with linear types - we implemented our type system in GHC, the leading Haskell compiler, and demonstrate two kinds of applications of linear types: mutable data with pure interfaces; and enforcing protocols in I/O-performing functions

    Compiling functional reactive macroprograms for sensor networks

    Get PDF
    Thesis (S.M.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2005.Includes bibliographical references (p. 77-79).Sensor networks present a number of novel programming challenges for application developers. Their inherent limitations of computational power, communication bandwidth, and energy demand new approaches to programming that shield the developer from low-level details of resource management, concurrency, and in-network processing. To answer this challenge, this thesis presents a functional macroprogramming language called Regiment. The essential data model in Regiment is based on regions, which represent spatially distributed, time-varying collections of state. The programmer uses regions to define and manipulate dynamic sets of sensor nodes. A first compiler for Regiment has been constructed, which implements the essential core of the language on the TinyOS platform. This thesis presents the compiler as well as an intermediate language developed to serve as a Regiment compilation target.by Ryan Rhodes Newton.S.M

    A unique assemblage of cosmopolitan freshwater bacteria and higher community diversity differentiate an urbanized estuary from oligotrophic Lake Michigan

    Get PDF
    Water quality is impacted significantly by urbanization. The delivery of increased nutrient loads to waterways is a primary characteristic of this land use change. Despite the recognized effects of nutrient loading on aquatic systems, the influence of urbanization on the bacterial community composition of these systems is not understood. We used massively-parallel sequencing of bacterial 16S rRNA genes to examine the bacterial assemblages in transect samples spanning the heavily urbanized estuary of Milwaukee, WI to the relatively un-impacted waters of Lake Michigan. With this approach, we found that genera and lineages common to freshwater lake epilimnia were common and abundant in both the high nutrient, urban-impacted waterways and the low nutrient Lake Michigan. Although the two environments harbored many taxa in common, we identified a significant change in the community assemblage across the urban-influence gradient, and three distinct community features drove this change. First, we found the urban-influenced waterways harbored significantly greater bacterial richness and diversity than Lake Michigan (i.e. taxa augmentation). Second, we identified a shift in the relative abundance among common freshwater lineages, where acI, acTH1, Algoriphagus and LD12, had decreased representation and Limnohabitans, Polynucleobacter, and Rhodobacter had increased representation in the urban estuary. Third, by oligotyping 18 common freshwater genera/lineages, we found that oligotypes (highly resolved sequence clusters) within many of these genera/lineages had opposite preferences for the two environments. With these data, we suggest many of the defined cosmopolitan freshwater genera/lineages contain both oligotroph and more copiotroph species or populations, promoting the idea that within-genus lifestyle specialization, in addition to shifts in the dominance among core taxa and taxa augmentation, drive bacterial community change in urbanized waters

    Regulation of T Cell Homeostasis and Responses by Pten

    Get PDF
    The generation of lipid products catalyzed by PI3K is critical for normal T cell homeostasis and a productive immune response. PI3K can be activated in response to antigen receptor, co-stimulatory, cytokine, and chemokine signals. Moreover, dysregulation of this pathway frequently occurs in T cell lymphomas and is implicated in lymphoproliferative autoimmune disease. Akt acts as a central mediator of PI3K signals, downstream of which is the mTOR pathway, controlling cell growth and metabolism. Members of the Foxo family of transcription factors are also regulated by Akt, thus linking control over homing and migration of T cells, as well cell cycle entry, apoptosis, and DNA damage and oxidative stress responses, to PI3K signaling. PTEN, first identified as a tumor suppressor gene, encodes a lipid phosphatase that, by catalyzing the reverse of the PI3K “reaction,” directly opposes PI3K signaling. However, PTEN may have other functions as well, and recent reports have suggested roles for PTEN as a tumor suppressor independent of its effects on PI3K signaling. Through the use of models in which Pten is deleted specifically in T cells, it is becoming increasingly clear that control over autoimmunity and lymphomagenesis by PTEN involves multi-faceted functions of this molecule at multiple stages within the T cell compartment

    Deterministic Threshold Queries of Distributed Data Structures

    Get PDF
    Abstract. Convergent replicated data types, or CvRDTs, are latticebased data structures for enforcing the eventual consistency of replicated objects in a distributed system. Although CvRDTs are provably eventually consistent, queries of CvRDTs nevertheless allow inconsistent intermediate states of replicas to be observed; and although in practice, many systems allow a mix of eventually consistent and strongly consistent queries, CvRDTs only support the former. Taking inspiration from our previous work on LVars for deterministic parallel programming, we show how to extend CvRDTs to support deterministic, strongly consistent queries using a mechanism called threshold queries. The threshold query technique generalizes to any lattice, and hence any CvRDT, and allows deterministic observations to be made of replicated objects before the replicas ’ states have converged
    corecore